﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

struct PersonFile
{
	char* name;
	int age;
};
void testFileOperation()
{
	FILE* f = fopen("../../../file/FileOperationReview.txt", "r");
	if (NULL == f)
	{
		printf("1.打开文件失败！\n");
		return;
	}
	char ch;
#if 0
	//6.feof(f)有滞后性，就是说读到EOF后，才会返回true。这里虽然读到了EOF，但是值没改变，还是!false，走完循环后，
		//才会变成!true = false；
	while (!feof(f))
	{
		ch = fgetc(f);

		//5.如果读到字符EOF时，就结束，停止输出字符内容；EOF作为文件内容结束标识，不应该被读取到；
		if (feof(f))
		{
			break;
		}

		printf("%c", ch);//aaaaaaaaaaaaaaaaaaaaa-->aaaaaaaaaaaaaaaaaaaaa
	}
#endif

	//7.使用这种方式，不会输出EOF字符；
	while ((ch = fgetc(f)) != EOF)
	{
		printf("%c", ch);//aaaaaaaaaaaaaaaaaaaaa
	}

	//2.关闭文件；
	fclose(f);
	f = NULL;

	//8.结构体成员char*类型，二进制读写；
	struct PersonFile pf = { "aaa",20 };
}

//main211：文件操作回顾
int main211()
{
	testFileOperation();
	//3.输出\0;
	//printf("%c", '\0');

	//4.输出EOF，即文件的结尾标识；
	//printf("%c", EOF);//

	system("pause");
	return EXIT_SUCCESS;
}